export interface RankedInfoFormat {
  solo?: RankedFormat,
  flex?: RankedFormat,
}

export interface RankedFormat {
  text?: string,
  abbrText?: string,
  tier?: string,
  wins?: number,
  highestText?: string,
  division?: string,
  lp?: number,
}

export interface RankedInfo {
  currentSeasonSplitPoints: number;
  earnedRegaliaRewardIds?: Array<any>;
  highestCurrentSeasonReachedTierSR: string;
  highestPreviousSeasonEndDivision: string;
  highestPreviousSeasonEndTier?: any;
  highestRankedEntry: HighestRankedEntry;
  highestRankedEntrySR: HighestRankedEntrySR;
  previousSeasonSplitPoints: number;
  queueMap: QueueMap;
  queues: Array<Queues>;
  rankedRegaliaLevel: number;
  seasons: Seasons;
  splitsProgress?: any;
};

export interface HighestRankedEntry {
  division: string;
  highestDivision: string;
  highestTier?: any;
  isProvisional: boolean;
  leaguePoints: number;
  losses: number;
  miniSeriesProgress?: any;
  previousSeasonEndDivision: string;
  previousSeasonEndTier?: any;
  previousSeasonHighestDivision: string;
  previousSeasonHighestTier?: any;
  provisionalGameThreshold: number;
  provisionalGamesRemaining: number;
  queueType: string;
  ratedRating: number;
  ratedTier: string;
  tier?: any;
  warnings?: any;
  wins: number;
};

export interface HighestRankedEntrySR {
  division: string;
  highestDivision: string;
  highestTier?: any;
  isProvisional: boolean;
  leaguePoints: number;
  losses: number;
  miniSeriesProgress?: any;
  previousSeasonEndDivision: string;
  previousSeasonEndTier?: any;
  previousSeasonHighestDivision: string;
  previousSeasonHighestTier?: any;
  provisionalGameThreshold: number;
  provisionalGamesRemaining: number;
  queueType: string;
  ratedRating: number;
  ratedTier: string;
  tier?: any;
  warnings?: any;
  wins: number;
};

export interface QueueMap {
  RANKED_FLEX_SR: RANKED_FLEX_SR;
  RANKED_SOLO_5x5: RANKED_SOLO_5x5;
  RANKED_TFT: RANKED_TFT;
  RANKED_TFT_DOUBLE_UP: RANKED_TFT_DOUBLE_UP;
  RANKED_TFT_TURBO: RANKED_TFT_TURBO;
};

export interface Queues {
  division: string;
  highestDivision: string;
  highestTier?: any;
  isProvisional: boolean;
  leaguePoints: number;
  losses: number;
  miniSeriesProgress?: any;
  previousSeasonEndDivision: string;
  previousSeasonEndTier?: any;
  previousSeasonHighestDivision: string;
  previousSeasonHighestTier?: any;
  provisionalGameThreshold: number;
  provisionalGamesRemaining: number;
  queueType: string;
  ratedRating: number;
  ratedTier: string;
  tier?: any;
  warnings?: any;
  wins: number;
};

export interface Seasons {
  RANKED_FLEX_SR: RANKED_FLEX_SR;
  RANKED_SOLO_5x5: RANKED_SOLO_5x5;
  RANKED_TFT: RANKED_TFT;
  RANKED_TFT_DOUBLE_UP: RANKED_TFT_DOUBLE_UP;
  RANKED_TFT_TURBO: RANKED_TFT_TURBO;
};

export interface RANKED_FLEX_SR {
  division: string;
  highestDivision: string;
  highestTier?: any;
  isProvisional: boolean;
  leaguePoints: number;
  losses: number;
  miniSeriesProgress?: any;
  previousSeasonEndDivision: string;
  previousSeasonEndTier?: any;
  previousSeasonHighestDivision: string;
  previousSeasonHighestTier?: any;
  provisionalGameThreshold: number;
  provisionalGamesRemaining: number;
  queueType: string;
  ratedRating: number;
  ratedTier: string;
  tier?: any;
  warnings?: any;
  wins: number;
};

export interface RANKED_SOLO_5x5 {
  division: string;
  highestDivision: string;
  highestTier?: any;
  isProvisional: boolean;
  leaguePoints: number;
  losses: number;
  miniSeriesProgress?: any;
  previousSeasonEndDivision: string;
  previousSeasonEndTier?: any;
  previousSeasonHighestDivision: string;
  previousSeasonHighestTier?: any;
  provisionalGameThreshold: number;
  provisionalGamesRemaining: number;
  queueType: string;
  ratedRating: number;
  ratedTier: string;
  tier?: any;
  warnings?: any;
  wins: number;
};

export interface RANKED_TFT {
  division: string;
  highestDivision: string;
  highestTier?: any;
  isProvisional: boolean;
  leaguePoints: number;
  losses: number;
  miniSeriesProgress?: any;
  previousSeasonEndDivision: string;
  previousSeasonEndTier?: any;
  previousSeasonHighestDivision: string;
  previousSeasonHighestTier?: any;
  provisionalGameThreshold: number;
  provisionalGamesRemaining: number;
  queueType: string;
  ratedRating: number;
  ratedTier: string;
  tier?: any;
  warnings?: any;
  wins: number;
};

export interface RANKED_TFT_DOUBLE_UP {
  division: string;
  highestDivision: string;
  highestTier?: any;
  isProvisional: boolean;
  leaguePoints: number;
  losses: number;
  miniSeriesProgress?: any;
  previousSeasonEndDivision: string;
  previousSeasonEndTier?: any;
  previousSeasonHighestDivision: string;
  previousSeasonHighestTier?: any;
  provisionalGameThreshold: number;
  provisionalGamesRemaining: number;
  queueType: string;
  ratedRating: number;
  ratedTier: string;
  tier?: any;
  warnings?: any;
  wins: number;
};

export interface RANKED_TFT_TURBO {
  division: string;
  highestDivision: string;
  highestTier?: any;
  isProvisional: boolean;
  leaguePoints: number;
  losses: number;
  miniSeriesProgress?: any;
  previousSeasonEndDivision: string;
  previousSeasonEndTier?: any;
  previousSeasonHighestDivision: string;
  previousSeasonHighestTier?: any;
  provisionalGameThreshold: number;
  provisionalGamesRemaining: number;
  queueType: string;
  ratedRating: number;
  ratedTier: string;
  tier?: any;
  warnings?: any;
  wins: number;
};

export interface RANKED_FLEX_SR {
  currentSeasonEnd: number;
  currentSeasonId: number;
  nextSeasonStart: number;
};

export interface RANKED_SOLO_5x5 {
  currentSeasonEnd: number;
  currentSeasonId: number;
  nextSeasonStart: number;
};

export interface RANKED_TFT {
  currentSeasonEnd: number;
  currentSeasonId: number;
  nextSeasonStart: number;
};

export interface RANKED_TFT_DOUBLE_UP {
  currentSeasonEnd: number;
  currentSeasonId: number;
  nextSeasonStart: number;
};

export interface RANKED_TFT_TURBO {
  currentSeasonEnd: number;
  currentSeasonId: number;
  nextSeasonStart: number;
};
